#ifndef __THREAD_WATCHDOG_H__
#define __THREAD_WATCHDOG_H__

/*******************************************************************************
 * File name  : thread_watchdog.h
 *------------------------------------------------------------------------------
 * Project    : common
 *------------------------------------------------------------------------------
 * Author(s)  : Jimmy.Cui
 *------------------------------------------------------------------------------
 * Copyright (c) 2021 Jimmy.
 * All rights reserved.
 *******************************************************************************/

/********************************************************************************
 * Include section
 *******************************************************************************/

/********************************************************************************
 * Constants and macros
 *******************************************************************************/

/********************************************************************************
 * Typedefs, structs and enums
 *******************************************************************************/
typedef enum
{
    E_CLEAN = 0x00,
    E_FEED_DOG,
}E_wd_status;

typedef struct _threadWd
{
    E_wd_status eWdStatus;
    struct _threadWd *next;
}threadWd;

/********************************************************************************
 * Variables
 *******************************************************************************/

/********************************************************************************
 * prototypes of the functions
 *******************************************************************************/
extern void threadWd_Create(threadWd **pp);
extern void threadWd_FeedDog(threadWd *p);
extern void threadWd_Exit(threadWd **pp);
extern void threadWd_Check(void);

#endif // __THREAD_WATCHDOG_H__

/*---------------------------------- End of the file ---------------------------------*/

